package com.gsafety.wellsfort.domain.model.knowledge;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gsafety.wellsfort.domain.model.course.Course;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 描述:kbs_work表的实体类
 * @version
 * @author:  zhoutanxin
 * @创建时间: 2020-04-21
 */
public class Work implements Comparable<Work>{
    /**
     * 
     */
    private Integer id;

    /**
     * 面向对象
     */
    private Integer objectType;

    /**
     * 作业标题
     */
    private String workTitle;

    /**
     * 建议时长
     */
    private Integer duration;

    /**
     * 发布次数
     */
    private Integer publicTimes;

    /**
     * 及格分数
     */
    private BigDecimal passingScore;

    /**
     * 当前总分数
     */
    private BigDecimal currentTotalScore;

    /**
     * 试题数量
     */
    private Integer questionNums;

    /**
     * 添加人
     */
    private Integer creator;

    @ApiModelProperty(value = "作业发布记录ID")
    private Integer workPublishId;

    /**
     * 添加时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改人
     */
    private Integer modified;

    /**
     * 完成状态
     */
    private Integer finishState;

    /**
     * 修改时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    /**
     * 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * 
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 面向对象
     * @return object_type 面向对象
     */
    public Integer getObjectType() {
        return objectType;
    }

    /**
     * 面向对象
     * @param objectType 面向对象
     */
    public void setObjectType(Integer objectType) {
        this.objectType = objectType;
    }

    /**
     * 作业标题
     * @return work_title 作业标题
     */
    public String getWorkTitle() {
        return workTitle;
    }

    /**
     * 作业标题
     * @param workTitle 作业标题
     */
    public void setWorkTitle(String workTitle) {
        this.workTitle = workTitle;
    }

    /**
     * 建议时长
     * @return duration 建议时长
     */
    public Integer getDuration() {
        return duration;
    }

    /**
     * 建议时长
     * @param duration 建议时长
     */
    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    /**
     * 发布次数
     * @return public_times 发布次数
     */
    public Integer getPublicTimes() {
        return publicTimes;
    }

    /**
     * 发布次数
     * @param publicTimes 发布次数
     */
    public void setPublicTimes(Integer publicTimes) {
        this.publicTimes = publicTimes;
    }

    /**
     * 及格分数
     * @return passing_score 及格分数
     */
    public BigDecimal getPassingScore() {
        return passingScore;
    }

    /**
     * 及格分数
     * @param passingScore 及格分数
     */
    public void setPassingScore(BigDecimal passingScore) {
        this.passingScore = passingScore;
    }

    /**
     * 当前总分数
     * @return current_total_score 当前总分数
     */
    public BigDecimal getCurrentTotalScore() {
        return currentTotalScore;
    }

    /**
     * 当前总分数
     * @param currentTotalScore 当前总分数
     */
    public void setCurrentTotalScore(BigDecimal currentTotalScore) {
        this.currentTotalScore = currentTotalScore;
    }

    /**
     * 试题数量
     * @return question_nums 试题数量
     */
    public Integer getQuestionNums() {
        return questionNums;
    }

    /**
     * 试题数量
     * @param questionNums 试题数量
     */
    public void setQuestionNums(Integer questionNums) {
        this.questionNums = questionNums;
    }

    /**
     * 添加人
     * @return creator 添加人
     */
    public Integer getCreator() {
        return creator;
    }

    /**
     * 添加人
     * @param creator 添加人
     */
    public void setCreator(Integer creator) {
        this.creator = creator;
    }

    /**
     * 添加时间
     * @return create_time 添加时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 添加时间
     * @param createTime 添加时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 修改人
     * @return modified 修改人
     */
    public Integer getModified() {
        return modified;
    }

    /**
     * 修改人
     * @param modified 修改人
     */
    public void setModified(Integer modified) {
        this.modified = modified;
    }

    /**
     * 修改时间
     * @return update_time 修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 修改时间
     * @param updateTime 修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public int compareTo(Work o) {
        if (this.getCreateTime() == null || o.getCreateTime() == null) {
            return 0;
        }
        return this.getCreateTime().compareTo(o.getCreateTime());
    }

    public Integer getFinishState() {
        return finishState;
    }

    public void setFinishState(Integer finishState) {
        this.finishState = finishState;
    }

    public Integer getWorkPublishId() {
        return workPublishId;
    }

    public void setWorkPublishId(Integer workPublishId) {
        this.workPublishId = workPublishId;
    }
}